package com.yc.jpyy.task;

import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import com.yc.jpyy.base.config.Config;
import com.yc.jpyy.base.util.PushNotificationTool;
import com.yc.jpyy.base.util.Util;
import com.yc.jpyy.mobile.dao.BizDao;


/**
 * 文件名      ：     MyTask.java<br/>
 * 作者           ：     xiaowu <br/>
 * 创建日期 ：     2014-6-20<br/>
 * 版权           ：     Copyright (c) 2010 FESCO Inc. All Rights Reserved. <br/>
 * 功能说明 ：      <br/>
 * 修改日期 ：      <br/>
 * 修改说明 ：      <br/>
 */


public class MyTask {
	
	
	@Autowired
	private BizDao bizDao;
    
    public void taskCycle(){
    	
    	
    	try{
    		
    		int minute = Integer.valueOf(Config.getRemindMinute());
        	
        	// 检查提醒课程
    		checkCourseRemand(minute);
        
        	// KCXG 课程修改 / 课程取消
    		getUpdateCourseNo(minute);
        	
    		// XTGG 系统公告
    		checkSysAnn(minute);
    		
            System.out.println("检测课程完毕....");
    		
    	}catch (Exception e){
    		e.printStackTrace();
    	}
    	
    
    }
    
    
    
    /**
     * 查是否有最新推送公告
     * @param minute
     */
    public void checkSysAnn(int minute){
    	
    	// 获取是否有最新推送公告
		List<Map<String, Object>> listObj = bizDao.checkSysAnn(minute);
    	
    	if (listObj != null && listObj.size() > 0){
    		
    		
    		for (Map<String, Object> map : listObj) {
    			
    			String content = "XTGG_系统公告_" + Util.getObjectString(map.get("title"));
    			
        		// 向全部叫俩推送课程提醒消息
        		PushNotificationTool.pushNotification("", content);
    			
			}
    	}
    	
    }
    
    /**
     * 检查提醒课程
     * @param minute
     */
    public void checkCourseRemand(int minute){
    	
    	// 获取提醒时间
		List<Map<String, Object>> listObj = bizDao.checkRemind(minute);
    	
    	if (listObj != null && listObj.size() > 0){
    		
    		
    		for (Map<String, Object> map : listObj) {
    			
    			String content = "KCTX_" + Util.getObjectString(map.get("courseNo")) + "_" + Util.getObjectString(map.get("remindContent"));
    			
        		// 推送课程提醒消息
        		PushNotificationTool.pushNotification(Util.getObjectString(map.get("stuOrTeaId")), "", content);
    			
			}
    	}
    	
    }
    
    
    /**
     * 查询修改课程编号
     * @param minute
     */
    public void getUpdateCourseNo(int minute){
    	
    	// 得到修改课程和取消课程信息
    	List<Map<String, Object>> listObj = bizDao.getUpdateCourseNo(minute);
    	
    	if (listObj != null && listObj.size() > 0){
    		
    		
    		for (Map<String, Object> map : listObj) {
    			
    			// 组织推送信息“前缀_课程编号_提醒内容”
    			String content = "KCTX_" + Util.getObjectString(map.get("courseNo")) + "_" + Util.getObjectString(map.get("remindContent"));
    			
        		// 向所有学员推送课程修改和取消消息
        		PushNotificationTool.pushNotification(Util.getObjectString(map.get("teacherId")), "", content);
    			
			}
    	}
    }

}
